// This example shows how to subscribe to events and obtain the notification events by pulling them. // // Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . // OPC client and subscriber examples in C# on GitHub: https://github.com/OPCLabs/Examples-QuickOPC-CSharp . // Missing some example? Ask us for it on our Online Forums, https://www.opclabs.com/forum/index ! You do not have to own // a commercial license in order to use Online Forums, and we reply to every post. using System; using OpcLabs.EasyOpc.AlarmsAndEvents; using OpcLabs.EasyOpc.AlarmsAndEvents.OperationModel; namespace DocExamples.AlarmsAndEvents._EasyAEClient { class PullNotification { public static void Main1() { // Instantiate the client object. // In order to use event pull, you must set a non-zero queue capacity upfront. using (var client = new EasyAEClient { PullNotificationQueueCapacity = 1000 }) { Console.WriteLine("Subscribing events..."); int handle = client.SubscribeEvents("", "OPCLabs.KitEventServer.2", 1000); Console.WriteLine("Processing event notifications for 1 minute..."); int endTick = Environment.TickCount + 60 * 1000; do { EasyAENotificationEventArgs eventArgs = client.PullNotification(2 * 1000); if (!(eventArgs is null)) // Handle the notification event Console.WriteLine(eventArgs); } while (Environment.TickCount < endTick); Console.WriteLine("Unsubscribing events..."); client.UnsubscribeEvents(handle); Console.WriteLine("Finished."); } } } }
# This example shows how to subscribe to events and obtain the notification events by pulling them. # # Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . # OPC client and subscriber examples in PowerShell on GitHub: https://github.com/OPCLabs/Examples-QuickOPC-PowerShell . # Missing some example? Ask us for it on our Online Forums, https://www.opclabs.com/forum/index ! You do not have to own # a commercial license in order to use Online Forums, and we reply to every post. #requires -Version 5.1 using namespace OpcLabs.EasyOpc.AlarmsAndEvents # The path below assumes that the current directory is [ProductDir]/Examples-NET/PowerShell/Windows . Add-Type -Path "../../../Components/Opclabs.QuickOpc/net472/OpcLabs.EasyOpcClassicCore.dll" Add-Type -Path "../../../Components/Opclabs.QuickOpc/net472/OpcLabs.EasyOpcClassic.dll" Add-Type -Path "../../../Components/Opclabs.QuickOpc/net472/OpcLabs.EasyOpcClassicComponents.dll" # Instantiate the client object. $client = New-Object EasyAEClient # In order to use event pull, you must set a non-zero queue capacity upfront. $client.PullNotificationQueueCapacity = 1000 Write-Host "Subscribing events..." $handle = [OpcLabs.EasyOpc.AlarmsAndEvents.IEasyAEClientExtension]::SubscribeEvents($client, "", "OPCLabs.KitEventServer.2", 1000) Write-Host "Processing event notifications for 1 minute..." $stopwatch = [System.Diagnostics.Stopwatch]::StartNew() while ($stopwatch.Elapsed.TotalSeconds -lt 60) { $eventArgs = $client.PullNotification(2*1000) if ($eventArgs -ne $null) { # Handle the notification event Write-Host $eventArgs } } Write-Host "Unsubscribing events..." $client.UnsubscribeEvents($handle) Write-Host "Finished."
' This example shows how to subscribe to events and obtain the notification events by pulling them. ' ' Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . ' OPC client and subscriber examples in VB.NET on GitHub: https://github.com/OPCLabs/Examples-QuickOPC-VBNET . ' Missing some example? Ask us for it on our Online Forums, https://www.opclabs.com/forum/index ! You do not have to own ' a commercial license in order to use Online Forums, and we reply to every post. Imports OpcLabs.EasyOpc.AlarmsAndEvents Imports OpcLabs.EasyOpc.AlarmsAndEvents.OperationModel Namespace AlarmsAndEvents._EasyAEClient Partial Friend Class PullNotification Public Shared Sub Main1() Using client = New EasyAEClient() ' In order to use event pull, you must set a non-zero queue capacity upfront. client.PullNotificationQueueCapacity = 1000 Console.WriteLine("Subscribing events...") Dim handle As Integer = client.SubscribeEvents("", "OPCLabs.KitEventServer.2", 1000) Console.WriteLine("Processing event notifications for 1 minute...") Dim endTick As Integer = Environment.TickCount + 60 * 1000 Do Dim eventArgs As EasyAENotificationEventArgs = client.PullNotification(2 * 1000) If Not eventArgs Is Nothing Then ' Handle the notification event Console.WriteLine(eventArgs) End If Loop While Environment.TickCount < endTick Console.WriteLine("Unsubscribing events...") client.UnsubscribeEvents(handle) End Using Console.WriteLine("Finished.") End Sub End Class End Namespace
// This example shows how to subscribe to events and obtain the notification events by pulling them. // // Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . // OPC client and subscriber examples in Object Pascal (Delphi) on GitHub: https://github.com/OPCLabs/Examples-QuickOPC-OP . // Missing some example? Ask us for it on our Online Forums, https://www.opclabs.com/forum/index ! You do not have to own // a commercial license in order to use Online Forums, and we reply to every post. class procedure PullNotification.Main; var Client: OpcLabs_EasyOpcClassic_TLB._EasyAEClient; EndTick: Cardinal; EventArgs: _EasyAENotificationEventArgs; Handle: Integer; ServerDescriptor: _ServerDescriptor; State: OleVariant; SubscriptionParameters: _AESubscriptionParameters; begin ServerDescriptor := CoServerDescriptor.Create; ServerDescriptor.ServerClass := 'OPCLabs.KitEventServer.2'; // Instantiate the client object Client := CoEasyAEClient.Create; // In order to use event pull, you must set a non-zero queue capacity upfront. Client.PullNotificationQueueCapacity := 1000; WriteLn('Subscribing events...'); SubscriptionParameters := CoAESubscriptionParameters.Create; SubscriptionParameters.NotificationRate := 1000; Handle := Client.SubscribeEvents(ServerDescriptor, SubscriptionParameters, true, State); WriteLn('Processing event notifications for 1 minute...'); EndTick := Ticks + 60*1000; while Ticks < EndTick do begin EventArgs := Client.PullNotification(2*1000); if EventArgs <> nil then // Handle the notification event WriteLn(EventArgs.ToString); end; WriteLn('Unsubscribing events...'); Client.UnsubscribeEvents(Handle); WriteLn('Finished.'); end;
// This example shows how to subscribe to events and obtain the notification events by pulling them. // // Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . // OPC client and subscriber examples in PHP on GitHub: https://github.com/OPCLabs/Examples-QuickOPC-PHP . // Missing some example? Ask us for it on our Online Forums, https://www.opclabs.com/forum/index ! You do not have to own // a commercial license in order to use Online Forums, and we reply to every post. $ServerDescriptor = new COM("OpcLabs.EasyOpc.ServerDescriptor"); $ServerDescriptor->ServerClass = "OPCLabs.KitEventServer.2"; $Client = new COM("OpcLabs.EasyOpc.AlarmsAndEvents.EasyAEClient"); // In order to use event pull, you must set a non-zero queue capacity upfront. $Client->PullNotificationQueueCapacity = 1000; print "Subscribing events...\n"; $SubscriptionParameters = new COM("OpcLabs.EasyOpc.AlarmsAndEvents.AESubscriptionParameters"); $SubscriptionParameters->NotificationRate = 1000; $handle = $Client->SubscribeEvents($ServerDescriptor, $SubscriptionParameters, TRUE, NULL); print "Processing event notifications for 1 minute...\n"; $endTime = time() + 60; do { $EventArgs = $Client->PullNotification(2*1000); if (!is_null($EventArgs)) { // Handle the notification event print $EventArgs->ToString(); print "\n"; } } while (time() < $endTime); print "Unsubscribing events...\n"; $Client->UnsubscribeEvents($handle); print "Finished.\n";
# This example shows how to subscribe to events and obtain the notification events by pulling them. # # The Python for Windows (pywin32) extensions package is needed. Install it using "pip install pypiwin32". # CAUTION: We now recommend using Python.NET package instead. Full set of examples with Python.NET is available! # # Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . import time import win32com.client serverDescriptor = win32com.client.Dispatch('OpcLabs.EasyOpc.ServerDescriptor') serverDescriptor.UrlString = 'opcae://localhost/OPCLabs.KitEventServer.2' #serverDescriptor.ServerClass = 'OPCLabs.KitEventServer.2' # Instantiate the client object client = win32com.client.Dispatch('OpcLabs.EasyOpc.AlarmsAndEvents.EasyAEClient') # In order to use event pull, you must set a non-zero queue capacity upfront. client.PullNotificationQueueCapacity = 1000 print('Subscribing events...') subscriptionParameters = win32com.client.Dispatch('OpcLabs.EasyOpc.AlarmsAndEvents.AESubscriptionParameters') subscriptionParameters.NotificationRate = 1000 handle = client.SubscribeEvents(serverDescriptor, subscriptionParameters, True, None) print('Processing event notifications for 1 minute...') endTime = time.time() + 60 while time.time() < endTime: eventArgs = client.PullNotification(2*1000) if eventArgs is not None: # Handle the notification event print(eventArgs) print('Unsubscribing events...') client.UnsubscribeAllEvents() print('Finished.')
REM This example shows how to subscribe to events and obtain the notification events by pulling them. REM REM Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . REM OPC client and subscriber examples in Visual Basic on GitHub: https://github.com/OPCLabs/Examples-QuickOPC-VB . REM Missing some example? Ask us for it on our Online Forums, https://www.opclabs.com/forum/index ! You do not have to own REM a commercial license in order to use Online Forums, and we reply to every post. Private Sub PullNotification_Main_Command_Click() OutputText = "" Dim eventArgs As EasyAENotificationEventArgs Dim serverDescriptor As New serverDescriptor serverDescriptor.ServerClass = "OPCLabs.KitEventServer.2" ' Instantiate the client object Dim client As New EasyAEClient ' In order to use event pull, you must set a non-zero queue capacity upfront. client.PullNotificationQueueCapacity = 1000 OutputText = OutputText & "Subscribing events..." & vbCrLf Dim subscriptionParameters As New AESubscriptionParameters subscriptionParameters.notificationRate = 1000 Dim handle Dim state handle = client.SubscribeEvents(serverDescriptor, subscriptionParameters, True, state) OutputText = OutputText & "Processing event notifications for 1 minute..." & vbCrLf Dim endTick As Long endTick = GetTickCount + 60000 While GetTickCount < endTick Set eventArgs = client.PullNotification(2 * 1000) If Not eventArgs Is Nothing Then ' Handle the notification event OutputText = OutputText & eventArgs & vbCrLf End If Wend OutputText = OutputText & "Unsubscribing events..." & vbCrLf client.UnsubscribeEvents handle OutputText = OutputText & "Finished." & vbCrLf End Sub
Rem This example shows how to subscribe to events and obtain the notification events by pulling them. Rem Rem Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . Rem OPC client and subscriber examples in VBScript on GitHub: https://github.com/OPCLabs/Examples-QuickOPC-VBScript . Rem Missing some example? Ask us for it on our Online Forums, https://www.opclabs.com/forum/index ! You do not have to own Rem a commercial license in order to use Online Forums, and we reply to every post. Option Explicit Dim ServerDescriptor: Set ServerDescriptor = CreateObject("OpcLabs.EasyOpc.ServerDescriptor") ServerDescriptor.ServerClass = "OPCLabs.KitEventServer.2" Dim Client: Set Client = CreateObject("OpcLabs.EasyOpc.AlarmsAndEvents.EasyAEClient") ' In order to use event pull, you must set a non-zero queue capacity upfront. Client.PullNotificationQueueCapacity = 1000 WScript.Echo "Subscribing events..." Dim SubscriptionParameters: Set SubscriptionParameters = CreateObject("OpcLabs.EasyOpc.AlarmsAndEvents.AESubscriptionParameters") SubscriptionParameters.NotificationRate = 1000 Dim handle: handle = Client.SubscribeEvents(ServerDescriptor, SubscriptionParameters, True, Nothing) WScript.Echo "Processing event notifications for 1 minute..." Dim endTime: endTime = Now() + 60*(1/24/60/60) Do Dim EventArgs: Set EventArgs = Client.PullNotification(2*1000) If Not (EventArgs Is Nothing) Then ' Handle the notification event WScript.Echo EventArgs End If Loop While Now() < endTime WScript.Echo "Unsubscribing events..." Client.UnsubscribeEvents handle WScript.Echo "Finished."
# This example shows how to subscribe to events and obtain the notification events by pulling them. # # Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html . # OPC client and subscriber examples in Python on GitHub: https://github.com/OPCLabs/Examples-QuickOPC-Python . # Missing some example? Ask us for it on our Online Forums, https://www.opclabs.com/forum/index ! You do not have to own # a commercial license in order to use Online Forums, and we reply to every post. # The QuickOPC package is needed. Install it using "pip install opclabs_quickopc". import opclabs_quickopc import time # Import .NET namespaces. from OpcLabs.EasyOpc import * from OpcLabs.EasyOpc.AlarmsAndEvents import * # Instantiate the client object client = EasyAEClient() # In order to use event pull, you must set a non-zero queue capacity upfront. client.PullNotificationQueueCapacity = 1000 print('Subscribing events...') handle = IEasyAEClientExtension.SubscribeEvents(client, '', 'OPCLabs.KitEventServer.2', 1000) print('Processing event notifications for 1 minute...') endTime = time.time() + 60 while time.time() < endTime: eventArgs = IEasyAEClientExtension.PullNotification(client, 2*1000) if eventArgs is not None: # Handle the notification event print(eventArgs) print('Unsubscribing events...') client.UnsubscribeAllEvents() print('Finished.')
Copyright © 2004-2024 CODE Consulting and Development, s.r.o., Plzen. All rights reserved.
Documentation Home, Send Documentation Feedback. Technical Support